package com.jlpay.open.jlpay.sdk.java.model.ledger.response;

import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import com.jlpay.open.jlpay.sdk.java.model.BaseResponse;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 *
 * @author dengwenning
 * @since 2024/8/30
 **/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
public class MerchIssueQueryResponse extends BaseResponse {

    /**
     * 分账系统分配的机构号，
     * 示例值：50261513
     */
    private String orgCode;

    /**
     * 最大分账比例
     * 出账方的单笔最大分账比例，1-100的整数，
     * 示例值：20
     */
    private String maxSplitRate;

    /**
     * 分账模式
     * 02：余额分账，
     * 示例值：02
     */
    private String ledgerModule;

    /**
     * 分账商户名
     * 出账方的商户名称
     */
    private String mchName;

    /**
     * 已绑定入账方列表
     */
    private List<Bind> bindList;

    /**
     * 分账手续费费率，单位为万分之一
     * 示例值：2
     */
    private Integer feeRate;

    /**
     * 分账手续费承担方
     * 枚举值
     * 0：出账方承担
     * 1：入账方承担
     * 示例值：0
     */
    private String pbthf;

    /**
     * 分账手续费保底金额，单位分，整数
     * 示例值：1
     */
    private Integer lowAmt;

    /**
     * 分账手续费封顶金额，单位分，整数
     * 示例值：10
     */
    private Integer upAmt;

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
    public static class Bind {
        /**
         * 入账方商户号
         */
        private String revMchId;

        /**
         * 入账方商户名
         */
        private String revMchName;
    }

}
